1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10 using System.Globalization;
11
12 namespace SoftQuanLyNhaHang.Views
13 {
14
15 public delegate void Link_BOMGoiSanPham_EventHandler(object sender, EventArgs e);
16
17 public partial class uctQuanLyMuaHang : UserControl
18 {
19 public uctQuanLyMuaHang()
20 {
21 InitializeComponent();
22 }
23
24 public static uctQuanLyMuaHang uctQLMh = new uctQuanLyMuaHang();
25
26 public event Link_BOMGoiSanPham_EventHandler Link_BOMGoiSanPham;
27
28 int _idBanHang = 0;
29 //string _maSanPham = string.Empty;
30 //string _tenSanPham = string.Empty;
31 double _giaBan =0;
32 double _thanhTien =0;
33 int _soLuong = 0;
34 string _donViTinh = string.Empty;
35 int _donViTinhId=0;
36 int _khachHangId =0;
37 DateTime _ngayMuaHang = DateTime.Now;
38 DateTime _tuNgay = DateTime.Parse("2000-01-01");
39 int _trangThai =1;
40 int _nhapKhoId =0;
41 double _chietKhauPhanTram =0;
42 double _thue = 0;
43 int _pageSize = 30;
44 int _pageIndex = 1;
45
46 int _stt = 0;
47 int _tongSoBanGhi = 0;
48 float _tongTienThanhToan = 0;
49 float _tongGiaNhap = 0;
50
51 private void uctQuanLyMuaHang_Load(object sender, EventArgs e)
52 {
53
54
55 }
56
57 public void HienThiDsSpDaBan()
58 {
59 maskedTxt_NgayBan.Text = CauHinhHeThong.Format_HienThiNgayThangNam(DateTime.Now.ToShortDateString(), false);
60
61 this.HienThiDsMuaHang(txtMaSanPham.Text.Trim(), txtTenSanPham.Text.Trim(), _tuNgay, _ngayMuaHang);
62 }
63
64 private void HienThiDsMuaHang(string maSanPham, string tenSanPham, DateTime tuNgay, DateTime ngayMua)
65 {
66
67 dgvDsMuaHang.Rows.Clear();
68 //Ẩn cột đầu tiên
69 dgvDsMuaHang.RowHeadersVisible = false;
70 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
71 this.dgvDsMuaHang.Columns["STT"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
72 this.dgvDsMuaHang.Columns["STT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
73 //this.dgvDanhSach.Columns["STT"].SortMode = DataGridViewColumnSortMode.NotSortable;
74
75 this.dgvDsMuaHang.Columns["IdBanHang"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
76 this.dgvDsMuaHang.Columns["IdBanHang"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
77
78 this.dgvDsMuaHang.Columns["SoLuongDaBan"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
79 this.dgvDsMuaHang.Columns["SoLuongDaBan"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
80
81 this.dgvDsMuaHang.Columns["GiaBan"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
82 this.dgvDsMuaHang.Columns["GiaBan"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
83
84
85 this.dgvDsMuaHang.Columns["ChietKhauPhanTram"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
86 this.dgvDsMuaHang.Columns["ChietKhauPhanTram"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
87
88 this.dgvDsMuaHang.Columns["Thue"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
89 this.dgvDsMuaHang.Columns["Thue"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
90
91 this.dgvDsMuaHang.Columns["NgayMuaHang"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
92 this.dgvDsMuaHang.Columns["NgayMuaHang"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
93
94 this.dgvDsMuaHang.Columns["ThanhTien"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
95 this.dgvDsMuaHang.Columns["ThanhTien"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
96
97
98 this.dgvDsMuaHang.Columns["LoiNhuan"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
99 this.dgvDsMuaHang.Columns["LoiNhuan"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
100
101
102 DataTable dtBh = new DataTable();
103
104 //if (timTheoNgay == true)
105 //{
106 //ngayMua = DateTime.ParseExact(maskedTxt_NgayBan.Text, "dd/MM/yyyy", null);
107
108 dtBh = Controllers.BanHangCtrl.FillDataSet_BanHang_BySearch(_idBanHang, maSanPham, tenSanPham, _giaBan, _thanhTien, _soLuong, _donViTinh, _donViTinhId, _khachHangId, ngayMua, _trangThai, _nhapKhoId, _chietKhauPhanTram, _thue, _tuNgay, _pageSize, _pageIndex).Tables[0];
109 //}
110 //else
111 //{
112 //ngayMua = ;
113
114 //dtBh = Controllers.BanHangCtrl.FillDataSet_BanHang_BySearch(_idBanHang, maSanPham, tenSanPham, _giaBan, _thanhTien, _soLuong, _donViTinh, _donViTinhId, _khachHangId, ngayMua, _trangThai, _nhapKhoId, _chietKhauPhanTram, _thue, _pageSize, _pageIndex).Tables[0];
115 //}
116
117
118 float loiNhuan = 0;
119 if (dtBh.Rows.Count > 0)
120 {
121 _tongSoBanGhi = Int32.Parse(dtBh.Rows[0]["TongSoBanGhi"].ToString());
122 _tongTienThanhToan = (float)CauHinhHeThong.Format_SoDeTinhToan(dtBh.Rows[0]["TongTienTatCaSanPham"].ToString(), false);
123 _tongGiaNhap = (float)CauHinhHeThong.Format_SoDeTinhToan(dtBh.Rows[0]["TongGiaNhapHang"].ToString(), false);
124
125 int khId_HienThi = 0;
126 int khId_GetCsdl = 0;
127 double tongTienTT =0;
128 int soTTSp = 0;
129 float giab = 0;
130 float soLuongDb = 0;
131 float thueBh = 0;
132 float ckBanHang = 0;
133 float giaBanMotMh = 0;
134 float tTienMMatHang = 0;
135 float thanhTienNhapHang = 0;
136
137
138 foreach (DataRow item in dtBh.Rows)
139 {
140 _stt += 1;
141
142 int n = dgvDsMuaHang.Rows.Add();
143
144 dgvDsMuaHang.Rows[n].Cells["IdBanHang"].Value = item["IdBanHang"].ToString();
145 dgvDsMuaHang.Rows[n].Cells["STT"].Value = _stt.ToString();
146
147 dgvDsMuaHang.Rows[n].Cells["MaSanPham"].Value = item["MaSanPham"].ToString();
148
149 giab = (float)CauHinhHeThong.Format_SoDeTinhToan(item["GiaBan"].ToString(), false);
150 thueBh = (float)CauHinhHeThong.Format_SoDeTinhToan(item["Thue"].ToString(), false);
151 ckBanHang = (float)CauHinhHeThong.Format_SoDeTinhToan(item["ChietKhauPhanTram"].ToString(), false);
152 soLuongDb = (float)CauHinhHeThong.Format_SoDeTinhToan(item["SoLuongDaBan"].ToString(), false);
153 thanhTienNhapHang = (float)CauHinhHeThong.Format_SoDeTinhToan(item["ThanhTienNhapHang"].ToString(), false);
154
155 khId_HienThi = Int32.Parse(item["KhachHangId"].ToString());
156 if (khId_HienThi != khId_GetCsdl)
157 {
158 tongTienTT = CauHinhHeThong.Format_SoDeTinhToan(item["TongTienThanhToan"].ToString(), false);
159
160
161 dgvDsMuaHang.Rows[n].Cells["ThanhTien"].Value = CauHinhHeThong.Format_SoDeHienThi(tongTienTT, true);
162
163 khId_GetCsdl = Int32.Parse(item["KhachHangId"].ToString());
164
165 soTTSp = 1;
166
167 }
168 else
169 {
170
171 soTTSp += 1;
172
173 }
174
175 tTienMMatHang = giab * soLuongDb - soLuongDb * ckBanHang * giab / 100 + soLuongDb * thueBh * giab / 100;
176
177 loiNhuan = tTienMMatHang - thanhTienNhapHang;
178 dgvDsMuaHang.Rows[n].Cells["LoiNhuan"].Value = CauHinhHeThong.Format_SoDeHienThi(loiNhuan, true);
179
180
181 if (!string.IsNullOrEmpty(txtTenSanPham.Text) || !string.IsNullOrEmpty(txtMaSanPham.Text))
182 {
183 dgvDsMuaHang.Rows[n].Cells["ThanhTien"].Value = CauHinhHeThong.Format_SoDeHienThi(tTienMMatHang, true);
184 }
185
186
187 dgvDsMuaHang.Rows[n].Cells["TenSanPham"].Value = soTTSp + ". " + item["TenSanPham"].ToString();
188
189
190 //dgvDsMuaHang.Rows[n].Cells["TenDonViTinh"].Value = item["DonViTinh"].ToString();
191
192 giaBanMotMh = giab - ckBanHang * giab / 100 + thueBh * giab / 100;
193
194 dgvDsMuaHang.Rows[n].Cells["GiaBan"].Value = CauHinhHeThong.Format_SoDeHienThi(giaBanMotMh, true);
195
196
197
198 if (item["TrangThai"].ToString() == "2")
199 {
200 dgvDsMuaHang.Rows[n].Cells["SoLuongDaBan"].Value = CauHinhHeThong.Format_SoDeHienThi(soLuongDb, false) + ". Hàng khuyễn mại";
201 }
202 else
203 {
204 dgvDsMuaHang.Rows[n].Cells["SoLuongDaBan"].Value = CauHinhHeThong.Format_SoDeHienThi(soLuongDb, false);
205 }
206
207
208
209 dgvDsMuaHang.Rows[n].Cells["ChietKhauPhanTram"].Value = item["ChietKhauPhanTram"].ToString();
210 dgvDsMuaHang.Rows[n].Cells["Thue"].Value = item["Thue"].ToString();
211
212 dgvDsMuaHang.Rows[n].Cells["NgayMuaHang"].Value = CauHinhHeThong.Format_HienThiNgayThangNam(item["NgayMuaHang"].ToString(), true);
213
214 }
215 }
216 else
217 {
218 _tongSoBanGhi = 0;
219 _tongTienThanhToan = 0;
220 _tongGiaNhap = 0;
221 }
222
223 lblTongSoBanGhiHienThi.Text = CauHinhHeThong.HienThiSoBanGhiTuA_DenB(_pageSize, _pageIndex, _stt.ToString(), _tongSoBanGhi.ToString());
224 txtTongTienThanhToan.Text = CauHinhHeThong.Format_SoDeHienThi(_tongTienThanhToan, true);
225 txtLoiNhuan.Text = CauHinhHeThong.Format_SoDeHienThi(_tongTienThanhToan - _tongGiaNhap, true);
226 }
227
228 private void btnTiep_Click(object sender, EventArgs e)
229 {
230 if (_tongSoBanGhi > (_pageSize * _pageIndex))
231 {
232 _pageIndex = _pageIndex + 1;
233
234 this.HienThiDsMuaHang(txtMaSanPham.Text.Trim(), txtTenSanPham.Text.Trim(), _tuNgay, _ngayMuaHang);
235 }
236 else
237 {
238 return;
239 }
240 }
241
242 private void btnSau_Click(object sender, EventArgs e)
243 {
244 if ((_pageSize * _pageIndex) > _pageSize)
245 {
246 _pageIndex = _pageIndex - 1;
247 _stt = _pageSize * _pageIndex - _pageSize;
248
249 this.HienThiDsMuaHang(txtMaSanPham.Text.Trim(), txtTenSanPham.Text.Trim(), _tuNgay, _ngayMuaHang);
250
251 }
252 else
253 {
254 _pageIndex = 1;
255 }
256 }
257
258 private void btnTimKiem_Click(object sender, EventArgs e)
259 {
260 _stt = 0;
261 _pageSize = 30;
262 _pageIndex = 1;
263
264 string formatTuNgay = "dd/MM/yyyy";
265 DateTime dateTimeTuNgay;
266
267 string formatDenNgay = "dd/MM/yyyy";
268 DateTime dateTimeDenNgay;
269
270 if (DateTime.TryParseExact(maskedTextBox_TuNgay.Text, formatTuNgay, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTimeTuNgay))
271 {
272 _tuNgay = DateTime.ParseExact(maskedTextBox_TuNgay.Text, "dd/MM/yyyy", null);
273 }
274 else
275 {
276 _tuNgay = DateTime.Parse("2000-01-01");
277 }
278
279 if (DateTime.TryParseExact(maskedTxt_NgayBan.Text, formatDenNgay, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTimeDenNgay))
280 {
281 _ngayMuaHang = DateTime.ParseExact(maskedTxt_NgayBan.Text, "dd/MM/yyyy", null);
282 }
283 else
284 {
285 _ngayMuaHang = DateTime.Now;
286 }
287
288 this.HienThiDsMuaHang(txtMaSanPham.Text.Trim(), txtTenSanPham.Text.Trim(), _tuNgay, _ngayMuaHang);
289 }
290
291 private void txtMaSanPham_TextChanged(object sender, EventArgs e)
292 {
293 this.btnTimKiem_Click(sender, e);
294 }
295
296 private void txtTenSanPham_TextChanged(object sender, EventArgs e)
297 {
298 this.btnTimKiem_Click(sender, e);
299 }
300
301 private void linkLabel_BomGoiSp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
302 {
303 if (this.Link_BOMGoiSanPham != null)
304 {
305 this.Link_BOMGoiSanPham(sender, e);
306 }
307 }
308
309 }
310 }